package mx.com.switz.controller;

import java.util.List;
import mx.com.switz.dto.Categoria;
import mx.com.switz.service.CategoriaService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping ("categoria/")
public class CategoriaController {
	
    		  @Autowired
	    private CategoriaService categoriaService;
                  
                  @RequestMapping("categoria")
    public String goCategoria() {
        return "categoria/categoria";
    }
                            
	    @RequestMapping(value = "insertcat",method = RequestMethod.POST)
	    public String insertCategoria(@RequestParam("nombre") String nombre,@RequestParam("detalles") String detalles) {
	        Categoria a = new Categoria();
               	 a.setNombre(nombre);
	        a.setDetalles(detalles);
	        categoriaService.insertCategoria(a);
	        	        return "categoria/categoria";
	    }
            
            //borrado
    @RequestMapping("borrar")
    public String goBorra() {
        return "categoria/borraCategoria";
    }

    @RequestMapping(value="delete",method= RequestMethod.GET)
    public String eliminaCategoria(@RequestParam("clave") int clave) {
        Categoria a = new Categoria();
        a.setClave(clave);
        categoriaService.eliminaCategoria(a);
        return "categoria/borraCategoria";
    }
    
    //actualiza
    @RequestMapping("modifica")
    public String goModifica() {
        return "categoria/buscaCategoriaModificar";
    }

    @RequestMapping("update")
    public String updateCategoria(@RequestParam("clave") int clave, @RequestParam("nombre") String nombre, @RequestParam("apPa") String detalles) {
        Categoria a = new Categoria();
        a.setClave(clave);
        a.setNombre(nombre);
        a.setDetalles(detalles);
        categoriaService.actualizaCategoria(a);
         return "categoria/buscaCategoriaModificar";
    }

    //Lista categorias por nombre
    @RequestMapping("buscar")
    public String goBuscar() {
        return "categoria/buscaCategoriaNombre";
    }

    @RequestMapping("listar")
    public ModelAndView buscaCategoria(@RequestParam("nombref") String nombre) {
        Categoria a = new Categoria();
        a.setNombre(nombre);
        categoriaService.findCategoriaByNombre(a);
        return new ModelAndView("categoria/listarCategorias", "categorias", categoriaService.findCategoriaByNombre(a));
    }
    //busca categoria por nombre y lo manda a formulario de JSP datosCategoria
 @RequestMapping("listar2")
    public ModelAndView busca2Categoria(@RequestParam("nombre") String nombre) {
        Categoria a = new Categoria();
       // a.setNombre(clave);
        a.setNombre(nombre);
        //a.setDetalles(apePAterno);
        categoriaService.findCategoriaByNombre(a);
        return new ModelAndView("categoria/datosCategoria","categorias", categoriaService.findCategoriaByNombre(a));  
 }
//Manda a llamar directamente el JSP desplegarCategorias. 
 //Muestra todos los categorias
    @RequestMapping(value="mostrar",method= RequestMethod.GET)
    public List muestraCategoria() {
       return categoriaService.listarCategorias();
        //return new ModelAndView("categoria/desplegarCategorias", "categorias", categoriaService.listarCategorias());
    }                      
}